package com.whfc.emp.dao;

import com.whfc.emp.entity.ClassMeetingSign;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ClassMeetingSignMapper {
    /**
     * 根据ID查询
     */
    ClassMeetingSign selectByPrimaryKey(Integer id);

    /**
     * 根据ID删除
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 全字段插入
     */
    int insert(ClassMeetingSign record);

    /**
     * 选择性插入（非空字段才插入）
     */
    int insertSelective(ClassMeetingSign record);

    /**
     * 选择性更新（非空字段才更新）
     */
    int updateByPrimaryKeySelective(ClassMeetingSign record);

    /**
     * 全字段更新
     */
    int updateByPrimaryKey(ClassMeetingSign record);

    /**
     * 根据班会ID查询签到记录
     */
    List<ClassMeetingSign> selectByMeetingId(Long meetingId);

    /**
     * 根据用户ID查询签到记录
     */
    List<ClassMeetingSign> selectByUserId(Long userId);

    /**
     * 更新签到状态
     */
    int updateSignStatus(ClassMeetingSign record);

    /**
     * 查询班会签到统计
     */
    Map<String, Object> selectSignCount(Integer meetingId);

    ClassMeetingSign selectByPrimaryIdAndUserId(Integer id, Integer userId);

    List<ClassMeetingSign> selectSignByMeetingId(Integer meetingId);

    /**
     * 根据emp_id查询签到记录
     */
    List<ClassMeetingSign> selectByEmpId(Long empId);

    /**
     * 根据creator_id查询签到记录
     */
    List<ClassMeetingSign> selectByCreatorId(Long creatorId);

    /**
     * 根据emp_id和meeting_id查询签到记录
     */
    ClassMeetingSign selectByEmpIdAndMeetingId(@Param("empId") Long empId, @Param("meetingId") Long meetingId);
}